home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Maclife 40
/
MACLIFE40.ISO.7z
/
MACLIFE40.ISO
/
MACLIFE連載
/
特集II DTPデザインを効率化
/
AppleScript⁄サンプル
/
SampleScript
/
For OtherApplication
/
Send Time 0.9
/
send time.txt
< prev
next >
Wrap
Text File
|
1998-02-09
|
3KB
|
99 lines
global tani_hour, tani_min, tani_sec, Send_hour, Send_min, Send_sec
property Trans_speed : "28.8"
--直接起動された
on run
set File_list to {}
tell application "Finder"
activate
repeat with sFile in selection
set File_list to File_list & (sFile as alias)
end repeat
if File_list is {} then
set File_list to {}
repeat
try
choose file with prompt "処理するfileを選んでください(最後はキャンセルを押す)"
set File_list to File_list & result
on error errMsg number ERRNO
if ERRNO is -128 then --キャンセルが押されたら
exit repeat
else --それ以外の不意打ちには
error errMsg & ERRNO
exit repeat
end if
end try
end repeat
end if
end tell
my main(File_list)
end run
--ドラッグ&ドロップされた
on open File_list
my main(File_list)
end open
--計算のメインルーチン
on main(File_list)
tell application "Finder"
activate
set ANS to display dialog "およその通信スピードを入力してください" default answer (Trans_speed as string) buttons {"bps", "Kbps", "Mbps"} default button 2 with icon 1
set Trans_speed to (text returned of ANS) as number
set Modem_speed to button returned of ANS
if Modem_speed = "bps" then
set Modem_speed to 1
else if Modem_speed = "Kbps" then
set Modem_speed to 1024
else if Modem_speed = "Mbps" then
set Modem_speed to 1048576
end if
set File_size to ""
repeat with aFile in File_list
set File_size to (File_size as number) + (size of aFile)
end repeat
set Send_time to ((File_size * 8) / (Trans_speed * Modem_speed)) div 1
set tani_hour to "" --単位の初期化
set tani_min to ""
set tani_sec to ""
set Send_hour to ""
set Send_min to ""
set Send_sec to ""
set Send_time to my jikan(Send_time)
display dialog "このファイル(合計:" & File_size & " byte)はおよそ" & return & (Send_time as string) & return & "ぐらいで送れると思いますよ...たぶん(^_^; "
end tell
end main
--秒を時間に換算
on jikan(Send_time)
if Send_time ウ 3600 then
set Send_hour to Send_time div 3600
set Send_min to Send_time mod 3600
set tani_hour to "時間"
my jikan(Send_min)
else if Send_time ウ 60 then
set Send_min to Send_time div 60
set Send_sec to Send_time mod 60
set tani_min to "分"
my jikan(Send_sec)
else
set Send_sec to Send_time
if tani_min = "" and Send_sec = 0 then set Send_sec to 1
set tani_sec to "秒"
end if
set Send_time to (Send_hour as string) & tani_hour & Send_min & tani_min & Send_sec & tani_sec
return Send_time
end jikan